package com.xiangban.yanglaodajie_platform.dao;

import com.xiangban.yanglaodajie_platform.entity.ClassOrActivity;
import com.xiangban.yanglaodajie_platform.entity.ClassSchedule;
import com.xiangban.yanglaodajie_platform.entity.ClassSign;
import com.xiangban.yanglaodajie_platform.entity.OrdersClassOrActivity;
import com.xiangban.yanglaodajie_platform.entity.dto.ClassScheduleDto;
import com.xiangban.yanglaodajie_platform.entity.dto.OrdersClassOrActivityDto;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @Author Mr. MaYaYun
 * @Data 2021/5/8 17:24
 */
@Repository
public interface OrdersClassOrActivityMapper {

    void updateStatus(OrdersClassOrActivity ordersClassOrActivity);

    List<OrdersClassOrActivityDto> classStudents(OrdersClassOrActivity ordersClassOrActivity);
    void updateFailStatus(OrdersClassOrActivity ordersClassOrActivity);

    List<OrdersClassOrActivityDto> selectOrdersList(OrdersClassOrActivity ordersClassOrActivity);
    OrdersClassOrActivityDto selectOrdersInfo(OrdersClassOrActivity ordersClassOrActivity);
    void updateOrderStatus(OrdersClassOrActivity ordersClassOrActivity);
    List<OrdersClassOrActivity> seletctOrderByUserIdAndClassOrActivityId(OrdersClassOrActivity ordersClassOrActivity);
    OrdersClassOrActivity selectOrderByOrdersNumber(OrdersClassOrActivity ordersClassOrActivity);
    void saveOrders(OrdersClassOrActivity ordersClassOrActivity);

    List<OrdersClassOrActivity> findOrdersByUserId(OrdersClassOrActivity ordersClassOrActivity);
    OrdersClassOrActivity findOrdersByUserIdAndClassOrActivityId(OrdersClassOrActivity ordersClassOrActivity);
    ClassSchedule getClassSchedule(ClassSchedule classSchedule);
    List<ClassSign> getSignRecode(ClassSign classSign);
    void addSignRecode(ClassSign classSign);
    void updateSignById(ClassSign classSign);
    List<ClassSchedule>findClassScheduleWeek(ClassScheduleDto classScheduleDto);
    List<ClassSchedule> getScheduleByDate(Map<String,Object> parameterMap);
    ClassSign findLongTime(ClassSign classSign);

    List<ClassOrActivity> findActivityTime(ClassScheduleDto classScheduleDto);
    List<ClassSign> getSignRecodeBySection(ClassSign classSign);
}
